/*
 * Created by Administrator on 2017/6/7 0007.


//  https://docs.mongodb.com/getting-started/node/query/

1。安装mongodb  cnpm install  mongodb --save


2.
 var MongoClient = require('mongodb').MongoClient;

 var ObjectId = require('mongodb').ObjectID;

 var url = 'mongodb://localhost:27017/test';


3.看文档使用

    1。连接数据库

    2.操作数据库


 */




var express = require('express');
var app = new express();
var bodyParser = require('body-parser');
//引入mongodb
var MongoClient = require('mongodb').MongoClient;

var ObjectId = require('mongodb').ObjectID;  /*用于根据id查询*/


//数据库的连接地址   student表示数据库的名称
var url = 'mongodb://localhost:27017/student';

app.set("view engine","ejs");

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());

//学员列表
app.get('/',function(req,res){


    MongoClient.connect(url,function(err,db){
        if(err){

            console.log('连接数据库失败');
            return;
        }


        var result=db.collection('user').find();

        var list=[];
        result.each(function(error,doc){

            if(doc!=null){

                list.push(doc);
            }else{

                //遍历完成
                //res.send('学员列表')
                db.close();
                res.render('index',{
                    list             //list:list
                })

            }

        })



    })


})


//增加学员  文本框
app.get('/add',function(req,res){
    res.render('add',{

    })
})

//执行增加操作

app.post('/doAdd',function(req,res){
   //获取文本框的值

    console.log(req.body);   //  { username: 'admin', age: '20', xuehao: '1', sex: '1' }


    MongoClient.connect(url,function(err,db){
        if(err){

            console.log('连接数据库失败');
            return;
        }
        //增加数据操作

        db.collection('user').insertOne(req.body,function(error,result){

            if(error){
                console.log('增加失败');
                return;
            }

            //增加成功  返回到首页

            res.redirect('/');


        })

    })


})



//修改学员
app.get('/edit',function(req,res){


    //获取用户ID

    var id=req.query.id;




    MongoClient.connect(url,function(err,db){
        if(err){

            console.log('连接数据库失败');
            return;
        }

        var result=db.collection('user').find({"_id":new ObjectId(id)});   /*注意这样的写法*/

        var list=[];
        result.each(function(error,doc){

            if(doc!=null){

                list.push(doc);
            }else{
                //遍历完成
                //res.send('学员列表')
                db.close();

                console.log(list);


                res.render('edit',{
                    info:list[0]    //[ { _id: 593654e21f008df0c85be360, username: 'lisi', age: 20 } ]
                })


            }

        })


    })





    //查询用户


})

//执行修改操作
app.post('/doEdit',function(req,res){

    //res.send('删除学员');

    //1.获取数据
    console.log(req.body);
    var id=req.body.id;
    var username=req.body.username;
    var age=req.body.age;
    var xuehao=req.body.xuehao;
    var sex=req.body.sex;

    MongoClient.connect(url,function(err,db){
        if(err){

            console.log('连接数据库失败');
            return;
        }
        //2.执行修改操作
        //条件是什么?   id=修改的id
        db.collection('user').updateOne({'_id':new ObjectId(id)},{
            username,
            age,
            xuehao,
            sex
        },function(error,result){

            if(error){
                console.log('修改失败');
                return;
            }
            res.redirect('/');  /*修改成功跳转到首页*/

        })


    })


})

//删除学员
app.get('/delete',function(req,res){


    var id=req.query.id;
    MongoClient.connect(url,function(err,db){
        if(err){

            console.log('连接数据库失败');
            return;
        }

        db.collection('user').deleteOne({"_id":new ObjectId(id)},function(error,result){

            if(error){
                console.log('删除失败');
                return;
            }
            db.close();

            //res.send("<script>alert('删除数据成功');location.href='/';</script>")
            res.render('success');



        })
    })

})




app.listen(8000,'127.0.0.1');

